package controle;

import presentation.PCarte;
import presentation.PTasDeCartesColorees;

import solitaire.application.Carte;
import solitaire.application.Tas;
import solitaire.application.TasDeCartesColorees;
import solitaire.application.Usine;

public class CTasDeCartesColorees extends TasDeCartesColorees implements ICTas{
	private PTasDeCartesColorees presentation;

	public CTasDeCartesColorees(String nom, int couleur, CUsine usine) {
		super(nom, couleur, usine);
		PCarte carte=new PCarte(couleur);
		presentation=new PTasDeCartesColorees(this);
		presentation.add(carte);
	}

	public PTasDeCartesColorees getPresentation() {
		return presentation;
	}

	public void setPresentation(PTasDeCartesColorees presentation) {
		this.presentation = presentation;
	}

	@Override
	public void depiler() {
			try {
				presentation.depiler();
				super.depiler();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

	@Override
	public void empiler(Carte carte) {
		System.out.println("la carte "+carte.getValeur()+"/"+carte.getCouleur()+" empilable sur "+this.getNom()+"? "+isEmpilable(carte));
		empiler((ICCarte) carte);
		super.empiler(carte);
	}

	public void empiler(ICCarte carte) {
		presentation.empiler(carte.getPresentation());
	}

	public boolean isEmpilable(ICCarte carte) {
		return isEmpilable((Carte) carte);
	}

	public boolean isEmpilable(ICTas tas) {
		return isEmpilable((Tas)tas);
	}

	public boolean isEmpilable(ICTas tas, int nbCartes) {
		return isEmpilable((Tas)tas, nbCartes);
	}

}
